#pragma once

#include <QString>
#include "GameEnums.h"

// 玩家游戏数据
struct PlayerGameData 
{
    quint32 level;          // 当前关卡
    quint32 health;         // 当前血量
    quint32 maxHealth;      // 最大血量
    quint32 attackPower;    // 攻击力
    quint32 defense;        // 防御力 - 减少受到的伤害
    quint32 critChance;     // 暴击率 (百分比，0-100)
    double critMultiplier;  // 暴击倍数
    quint32 hitChance;      // 命中率 (百分比，0-100)
    quint32 dodgeChance;    // 闪避率 (百分比，0-100)
    quint32 totalKills;     // 总击杀数
    GameState gameState;    // 游戏状态
    bool isInAutoCombat;    // 是否正在自动战斗中
    
    PlayerGameData();
    bool isAlive() const;
};

// 怪物数据
struct MonsterData 
{
    quint32 level;          // 怪物等级
    quint32 health;         // 当前血量
    quint32 maxHealth;      // 最大血量
    quint32 attackPower;    // 攻击力
    quint32 defense;        // 防御力
    quint32 critChance;     // 暴击率 (百分比)
    double critMultiplier;  // 暴击倍数
    quint32 hitChance;      // 命中率 (百分比)
    quint32 dodgeChance;    // 闪避率 (百分比)
    QString name;           // 怪物名称
    
    MonsterData();
    bool isAlive() const;
}; 